// utils.js 或其他工具函数文件
export function downloadJsonData(data, filename = 'data.json') {
  // 将JSON数据转换为字符串
  const dataStr = JSON.stringify(data);
  // 创建Blob对象
  const blob = new Blob([dataStr], { type: 'application/json' });
  // 创建下载的URL
  const url = URL.createObjectURL(blob);
  // 创建一个临时的<a>链接元素
  const link = document.createElement('a');
  // 设置下载的文件名
  link.download = filename;
  // 设置href为创建的URL
  link.href = url;
  // 将链接添加到文档中并点击，触发下载
  document.body.appendChild(link);
  if (link.dispatch) {
    link.dispatch(new MouseEvent('click'));
  } else {
    link.click(); // 兼容老版本浏览器
  }
  // 下载完成后移除链接，释放资源
  document.body.removeChild(link);
  // 释放URL对象
  URL.revokeObjectURL(url);
}

// 文件导入工具函数
export function importFile(file, callback) {
  // 检查文件是否存在
  if (!file) {
    throw new Error('没有选择文件');
  }

  // 确保文件是JSON类型
  if (file.type !== 'application/json') {
    throw new Error('请选择JSON文件');
  }

  // 使用FileReader读取文件
  const reader = new FileReader();

  // 当文件读取完成时触发
  reader.onload = (e) => {
    try {
      // 尝试将读取的文本解析为JSON
      const data = JSON.parse(e.target.result);
      // 调用回调函数，传入解析后的数据
      callback(null, data);
    } catch (error) {
      // 如果JSON解析失败，调用回调函数并传入错误
      callback(error);
    }
  };

  // 读取文件内容
  reader.readAsText(file);
}
